Fric-frac model refactoring
Refactoren (Engels: refactoring) is het herstructureren van de broncode van een computerprogramma met als doel de leesbaarheid en onderhoudbaarheid te verbeteren of het stuk code te vereenvoudigen. Het refactoren van broncode verandert de werking van de software niet: elke refactorstap is een kleine, ongedaan te maken stap die de leesbaarheid verhoogt zonder de werking aan te passen. Het wordt met name gebruikt bij extreme programming, een vorm van agile-softwareontwikkeling. (Wikipedia)
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. (Martin Fowler)
De model klassen
- Verwijder in de DBContext klasse:
- public virtual DbSet<EfmigrationsHistory> EfmigrationsHistory { get; set; }
- de methode protected override void OnModelCreating(ModelBuilder modelBuilder)
- Country
- Wat er stond:
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace FricFrac.Models.FricFrac { public partial class Country { public Country() { Person = new HashSet<Person>(); } [Required] [StringLength(50)] public string Name { get; set; } [StringLength(2)] public string Code { get; set; } [Column(TypeName = "int(11)")] public int Id { get; set; } [StringLength(256)] public string Desc { get; set; } [InverseProperty("Country")] public ICollection<Person> Person { get; set; } } }
- Wat het moet zijn:
- De waarde van het
name
in attribuut in de HTML is anders dan de naam van eigenschap van de klasse. Dat lossen we op door deFromForm
data-annotatie te gebruiken. - We verwijderen de
Person
property en de initialisering ervan in de constructor. - Dan ziet de code er zo uit:
using Microsoft.AspNetCore.Mvc; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace FricFrac.Models.FricFrac { public partial class Country { public Country() { } [Required] [StringLength(50)] [FromForm(Name = "Country-Name")] public string Name { get; set; } [Required] [StringLength(2)] [FromForm(Name = "Country-Code")] public string Code { get; set; } [Column(TypeName = "int(11)")] [FromForm(Name = "Country-Id")] public int Id { get; set; } [FromForm(Name = "Country-Desc")] [StringLength(256)] public string Desc { get; set; } } }
- De waarde van het
- Wat er stond:
- Verwijder de migratiegeschiedenis door de Migrations map leeg te maken.
- Verwijder alles uit de DBContext klasse (Docent300Context) totdat je alleen hetvolgende overhoudt:
using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata; namespace FricFrac.Models.FricFrac { public partial class Docent300Context : DbContext { public virtual DbSet<Country> Country { get; set; } public virtual DbSet<Event> Event { get; set; } public virtual DbSet<EventCategory> EventCategory { get; set; } public virtual DbSet<EventTopic> EventTopic { get; set; } public virtual DbSet<Person> Person { get; set; } public virtual DbSet<Role> Role { get; set; } public virtual DbSet<User> User { get; set; } public Docent300Context(DbContextOptions<Docent300Context> options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { } } } }
2018-01-21 15:00:49